Skip to content

prompt: autoreduce-pypi-name-collision shipped (PyAutoReduce#71) + induction filed - #307

Merged
Jammy2211 merged 8 commits into
mainfrom
claude/pyautoreduce-312-floor-t7bmpa
Aug 25, 2026
Merged

prompt: autoreduce-pypi-name-collision shipped (PyAutoReduce#71) + induction filed#307
Jammy2211 merged 8 commits into
mainfrom
claude/pyautoreduce-312-floor-t7bmpa

Conversation

@Jammy2211

Copy link
Copy Markdown
Collaborator

Mind state for the task that shipped as PyAutoReduce#72 (94a27f3) and autoreduce_workspace#1 (a2386ba), plus the follow-up prompt it spawned. Issue PyAutoReduce#71 is closed.

What changed

  • draft/bug/pyautoreduce/published_autoreduce_09_missing_312_floor.mdcomplete/2026/08/autoreduce-pypi-name-collision.md — reframed, then recorded on merge via lifecycle.py record, with ## Original prompt folded in.
  • draft/release/pyautoreduce/pyautoreduce_release_induction.md — new: induction into the PyAutoHands release machinery + date versioning, with the human's three answers recorded.
  • active.md — the task was registered, then released on completion. Net-zero against main: it converged byte-identically with main's own release of autofit-plot-functions-kwargs, leaving the single transformed-message-factor-gradient-unpack HOLD entry.
  • complete/index.md, dashboard.md, dashboard.html — regenerated.

Lifecycle drift closed along the way

The prompt had been sitting in draft/ since 2026-08-19 with Status: issued and a live issue link, never registered in active.md. It was carrying Lifecycle Drift the whole time. Moved to active/ and registered at start_dev; released at completion.

Why the prompt was reframed

It was filed as "published autoreduce 0.9 never got the Python 3.12 floor". The survey disproved the premise: autoreduce on PyPI is ayush9pandey/AutoReduce, unrelated to PyAutoLabs, and PyAutoReduce had never been tagged (git ls-remote --tags empty) or referenced anywhere in PyAutoHands. There was no floor gap; the <=3.14.7 cap was the other project's.

The real defect was that pyproject.toml claimed a distribution name we do not own while both READMEs told users to install it — and autoreduce_workspace/requirements.txt had a literal autoreduce[hst] install spec, so workspace setup actually fetched a stranger's package. Fixed by publishing as pyautoreduce with the import package left as autoreduce.

The full finding, the traps, and the rejected alternatives are in the completion record.

Note on the base

origin/main advanced by 10 commits mid-task (autofit-plot-functions-kwargs shipped, plus dashboard renderer work). Merged in rather than rebased, per the repo's no-history-rewriting rule. The generated files auto-merged textually and came out wrong — complete/index.md claimed 1122 records against a tree holding 1123, and dashboard.html kept 19 stale lines — so they were regenerated with lifecycle.py index --apply and pyauto-brain intake --apply dashboard instead of hand-resolved. lifecycle check and lifecycle index --check both pass, and the net diff against main touches only this task's files.


Generated by Claude Code

claude added 8 commits August 24, 2026 21:59
The prompt was filed as "published autoreduce 0.9 never got the 3.12 floor".
The survey disproves that premise: `autoreduce` on PyPI is ayush9pandey/
AutoReduce, an unrelated and actively maintained project. PyAutoReduce has
zero git tags and zero references in PyAutoHands, so it has never been
published — there is no floor gap and the <=3.14.7 cap is not ours.

The real defect is that pyproject.toml claims a distribution name we do not
own, and both READMEs tell users to install it. Decision: publish as
`pyautoreduce`, import package stays `autoreduce`.

- draft/bug/pyautoreduce/published_autoreduce_09_missing_312_floor.md
  -> active/autoreduce_pypi_name_collision.md, rewritten to the real finding
- active.md: register the task (was Status: issued but never registered —
  it had been carrying Lifecycle Drift since 2026-08-19)
- draft/release/pyautoreduce/pyautoreduce_release_induction.md: new prompt
  for the PyAutoHands induction + date versioning, blocked on #71
- dashboard regenerated

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V19RfJbExKP4hsT5c6LttV
Both PRs open:
- PyAutoReduce#72 (library) — distribution renamed to `pyautoreduce`
- autoreduce_workspace#1 (workspace) — merges behind #72

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V19RfJbExKP4hsT5c6LttV
…tion

Human decisions (2026-08-24): nightly cadence with the other projects; the
family's date scheme with no 0.x line first; account-scoped PyPI token from
the Jammy2211 account under the PyAutoLabs org, narrowed to a project-scoped
one after the first publish.

Two consequences recorded with them:

- Nightly is activity-gated over a repo list, so PyAutoReduce has to join that
  list in PyAutoBrain's nightly-release.yml as well as release.yml's matrices —
  otherwise a day whose only merged work is in PyAutoReduce reads as "no
  activity, skipped". PyAutoBrain added to the prompt's repo list.
- `YYYY.MM.DD.1` and the family's `2026.8.24.1` are the same thing on PyPI:
  release.yml computes `date +"%Y.%-m.%-d"` (no padding), and PEP 440 integer
  normalization drops leading zeros anyway, so a padded tag cannot survive to
  the index. Recorded as the family format with a note not to add a padded
  variant for this repo alone.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V19RfJbExKP4hsT5c6LttV
Shipped: PyAutoReduce#72 (94a27f3) + autoreduce_workspace#1 (a2386ba), both
CI green, merged in library-first order. Issue #71 closed.

active/autoreduce_pypi_name_collision.md -> complete/2026/08/, active.md
entry released, index + dashboard regenerated.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V19RfJbExKP4hsT5c6LttV
origin/main had advanced by 10 commits (autofit-plot-functions-kwargs shipped,
plus dashboard renderer work). The generated files auto-merged textually, which
left complete/index.md claiming 1122 records against a tree holding 1123 and
19 stale lines in dashboard.html. Regenerated with the repo's own tooling
(lifecycle.py index --apply, pyauto-brain intake --apply dashboard) rather than
hand-resolved.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V19RfJbExKP4hsT5c6LttV
The branch was 90 commits behind main, and its three conflicts were all
generated pages: complete/index.md, dashboard.md, dashboard.html. Merging it as
it stood would have overwritten main's current dashboard with one rendered
before those 90 commits — a silent regression of the page, not a stale check.

Resolved with the repo's own tooling rather than by hand:

    python3 scripts/lifecycle.py index --apply
    pyauto-brain intake --mind . --apply dashboard

which is exactly what dashboard_refresh.yml's PR leg asks a contributor to run.
The regenerated pages take main's 90 commits and this branch's new completion
record together, so the merge result is current rather than either side's
snapshot.

Merge rather than rebase: this branch is not mine to rewrite.

Verified before pushing — dashboard --check current, registry_toc --check fresh,
lifecycle check OK, 212 tests pass.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PjWdVFPn2WDzcqpMXTMp7G
@Jammy2211
Jammy2211 merged commit 2fb9061 into main Aug 25, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants